import requests
from bs4 import BeautifulSoup
import json

# 前置：使用Requests 获取URL的response
url = "http://www.techlabplt.com:8080/BD-PC/priceList"
resp = requests.get(url)
resp.encoding = 'UTF-8'
'''
使用BS4解析数据,并输出至JSON文件
'''
# 1.把页面源代码交给BeautifulSoup进行处理，生成BS对象并指定html解析器
pageHtml = BeautifulSoup(resp.text, "html.parser")
# 2.获取html内的div，div的class为tbl-body。里面包含着需要爬取的数据
tableDiv = pageHtml.find("div", attrs={"class": "tbl-body"})
# 3.获取所有的tr
dataDiv = tableDiv.findAll("tr")
# 4.删除第一个表头数据
del (dataDiv[0])
# 5.命名dataList数组，用于存储JSON数据
dataList = []
# 6.循环遍历每一行的数据
for data in dataDiv:
    # 得到每一行中的每一列
    oneData = data.findAll("td")
    # 存储到jsonData对象中
    jsonData = {
        "大类": oneData[0].text,
        "小类": oneData[1].text,
        "名称": oneData[2].text,
        "最低价": oneData[3].text,
        "平均价": oneData[4].text,
        "最高价": oneData[5].text,
        "规格": oneData[6].text,
        "来源": oneData[7].text,
        "单位": oneData[8].text,
        "更新日期": oneData[9].text

    }
    #把jsonData对象添加到dataList数组
    dataList.append(jsonData)

#7.新建命名为data.json的json文件，并将dataList数据存储
with open('D:\pycharm community\lab\data.json', 'w', encoding='utf-8') as jsonFile:
    jsonFile.write(json.dumps(dataList, ensure_ascii=False, indent=4))
